package com.hsqn.entity;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class WorkOrderEvaluation {
    /**
     * 评价ID（主键，自增）
     * 对应表字段：id
     */
//    @TableId(type = IdType.AUTO)  // 主键策略：自增，适配表中 AUTO_INCREMENT
    private Long id;

    /**
     * 关联工单ID（一个工单仅一条评价，对应表中 uk_order_id 唯一索引）
     * 对应表字段：order_id（非空）
     */
    @NotNull(message = "关联工单ID不能为空")  // 参数校验：非空
    private Long orderId;

    /**
     * 评价老人ID（评价发起者）
     * 对应表字段：elderly_id（非空）
     */
    @NotNull(message = "评价老人ID不能为空")
    private Long elderlyId;

    /**
     * 评价星级（1-5星，非空）
     * 对应表字段：evaluate_star（非空）
     */
    @NotNull(message = "评价星级不能为空")
    @Min(value = 1, message = "评价星级不能低于1星")
    @Max(value = 5, message = "评价星级不能高于5星")
    private Integer evaluateStar;

    /**
     * 评价内容（可选，text类型）
     * 对应表字段：evaluate_content（可空）
     */
    private String evaluateContent;

    /**
     * 评价时间（默认当前时间，表中已设置 DEFAULT CURRENT_TIMESTAMP）
     * 对应表字段：evaluate_time（非空）
     */
    private LocalDateTime evaluateTime;

    /**
     * 是否匿名（0-否，1-是，默认0）
     * 对应表字段：is_anonymous（非空，默认值0）
     */
    private Integer isAnonymous = 0;
}
